//package cn.qzsoft.collect.server.modules.ludong.contaminant.service.impl;
//
//import cn.qzsoft.collect.server.modules.ludong.contaminant.Dto.EnvWarningFlagDto;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.entity.ContaminantMonitorDetailEntity;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.entity.ContaminantMonitorEntity;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.entity.EnvDataEntity;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.entity.EnvDeviceEntity;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.mapper.EnvDataMapper;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.mapper.EnvDeviceMapper;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.mapper.EnvWarningFlagMapper;
//import cn.qzsoft.collect.server.modules.ludong.contaminant.service.EnvWarningFlagService;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.math.BigDecimal;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.*;
//
///**
// * 预警数据采集实现
// */
//@Service
//public class EnvWarningFlagServiceImpl extends ServiceImpl<EnvWarningFlagMapper, EnvWarningFlagDto> implements EnvWarningFlagService {
//    @Autowired
//    private EnvWarningFlagMapper envWarningFlagMapper;
//    @Autowired
//    private EnvDataMapper envDataMapper;
//    @Autowired
//    private EnvDeviceMapper envDeviceMapper;
//
//    public String noiseThresholdName = "噪音报警阈值";
//    public String tspThresholdName = "扬尘报警阈值";
//    public String pm25ThresholdName = "pm2.5报警阈值";
//    public String pm10ThresholdName = "pm10报警阈值";
//
//    /**
//     * 预警信息采集
//     *
//     * @param contaminantMonitorEntity 主表,list 子表
//     */
//    @Override
//    @Transactional(rollbackFor = Exception.class)
//    public void dataCollection(ContaminantMonitorEntity contaminantMonitorEntity, List<ContaminantMonitorDetailEntity> list) throws Exception {
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
//        EnvDataEntity envDataEntity = new EnvDataEntity();
//        //首先通过设备编号查询设备id
//        if (ObjectUtils.isNotEmpty(contaminantMonitorEntity.getEquipmentNumber())) {
//            QueryWrapper<EnvDeviceEntity> queryWrapper = new QueryWrapper<>();
//            queryWrapper.eq("code", contaminantMonitorEntity.getEquipmentNumber());
//            EnvDeviceEntity envDeviceEntity = envDeviceMapper.selectOne(queryWrapper);
//            envDataEntity.setDeviceId(envDeviceEntity.getId());
//        }
//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");//注意月份是MM
//        Date date = simpleDateFormat.parse(contaminantMonitorEntity.getDataTime());
//        envDataEntity.setUploadTime(sdf.format(date));
//        envDataEntity.setInsertTime(sdf.format(contaminantMonitorEntity.getCreateTime()));
//        envDataEntity.setOrganizationCode(contaminantMonitorEntity.getOrganizationId());
//        envDataEntity.setSectionName(contaminantMonitorEntity.getSectionName());
//        envDataEntity.setSectionId(contaminantMonitorEntity.getSectionId());
//        envDataEntity.setEquipmentNumber(contaminantMonitorEntity.getEquipmentNumber());
//        for (ContaminantMonitorDetailEntity contaminantMonitorDetailEntity : list) {
//            //温度
//            if (contaminantMonitorDetailEntity.getCode().equals("a01001")) {
//                envDataEntity.setTemperature(new BigDecimal(contaminantMonitorDetailEntity.getRtd()));
//            }
//            //湿度
//            if (contaminantMonitorDetailEntity.getCode().equals("a01002")) {
//                envDataEntity.setHumidity(new BigDecimal(contaminantMonitorDetailEntity.getRtd()));
//            }
//            //总悬浮颗粒物tsp
//            if (contaminantMonitorDetailEntity.getCode().equals("a34001")) {
//                envDataEntity.setTsp(new BigDecimal(contaminantMonitorDetailEntity.getRtd()));
//            }
//            //pm10
//            if (contaminantMonitorDetailEntity.getCode().equals("a34002")) {
//                envDataEntity.setPm10(new BigDecimal(contaminantMonitorDetailEntity.getRtd()));
//            }
//            //pm2.5
//            if (contaminantMonitorDetailEntity.getCode().equals("a34004")) {
//                envDataEntity.setPm2d5(new BigDecimal(contaminantMonitorDetailEntity.getRtd()));
//            }
//            //噪声
//            if (contaminantMonitorDetailEntity.getCode().equals("a50001")) {
//                envDataEntity.setNoise(new BigDecimal(contaminantMonitorDetailEntity.getRtd()));
//            }
//        }
//        envDataEntity.setFlag(0);
//        envDataMapper.insert(envDataEntity);
//
//    }
//
//
//    public String time(Map<String, Object> params, String resTime) {
//        try {
//            if ("year".equals(params.get("reportType").toString())) {
//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
//                Date parse = sdf.parse(resTime);
//                return sdf.format(parse);
//            } else if ("month".equals(params.get("reportType").toString())) {
//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
//                Date parse = sdf.parse(resTime);
//                return sdf.format(parse);
//            } else {
//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//                Date parse = sdf.parse(resTime);
//                return sdf.format(parse);
//            }
//        } catch (ParseException e) {
//            e.printStackTrace();
//            throw new RuntimeException("格式化时间错误");
//        }
//    }
//
//    /**
//     * 判断是否大于持续时间
//     *
//     * @param inst
//     * @param update
//     * @param duration
//     * @param dataId
//     * @return
//     */
//    public int onOffControl(String inst, String update, Long duration, String dataId) {
//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        try {
//            Long instTrim = simpleDateFormat.parse(inst).getTime();
//            Long updateTrim = simpleDateFormat.parse(update).getTime();
//            long number = updateTrim - instTrim;
//            long minutes = (number / 1000) / 60;
//            long seconds = (number / 1000) % 60;
//            number = minutes + seconds;
//            if (number > duration) {
//                // 原始数据表更新状态预警
//                EnvDataEntity envDataEntity = new EnvDataEntity();
//                envDataEntity.setId(dataId);
//                envDataEntity.setFlag(1);
//                envDataMapper.updateById(envDataEntity);
//                return 1;
//            } else {
//                return 0;
//            }
//        } catch (ParseException e) {
//            e.printStackTrace();
//            throw new RuntimeException(e.getMessage());
//        }
//    }
//
//    /**
//     * 存储/更新数据
//     *
//     * @param thresholdValue
//     * @param count
//     * @param name
//     */
//    public void dataShowOrOff(JSONObject thresholdValue, Integer count, String name) {
//        Date date = new Date();
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String today = sdf.format(date);
//        if (count > 0) {
//            EnvWarningFlagDto dto = envWarningFlagMapper.getFirstData(thresholdValue.get("device_id").toString(), thresholdValue.get("dept_id").toString(), name);
//            EnvWarningFlagDto flagDto = new EnvWarningFlagDto();
//            flagDto.setId(dto.getId());
//            flagDto.setUpdateTime(today);
//            //flagDto.setFlag(onOffControl(dto.getInsertTime(), flagDto.getUpdateTime(), Long.valueOf(thresholdValue.get("duration").toString()) * 100, dto.getDataId()));
//            envWarningFlagMapper.updateById(flagDto);
//        } else {
//            EnvWarningFlagDto flagDto = new EnvWarningFlagDto();
//            //flagDto.setFlag(0);
//            flagDto.setDataId(thresholdValue.get("id").toString());
//            flagDto.setDeptId(thresholdValue.get("dept_id").toString());
//            flagDto.setDeviceId(thresholdValue.get("device_id").toString());
//            flagDto.setWarningType(name);
//            flagDto.setInsertTime(today);
//            envWarningFlagMapper.insert(flagDto);
//            // 原始数据表更新状态未预警
//            EnvWarningFlagDto dto = envWarningFlagMapper.getFirstData(thresholdValue.get("device_id").toString(), thresholdValue.get("dept_id").toString(), name);
//            EnvDataEntity envDataEntity = new EnvDataEntity();
//            envDataEntity.setId(dto.getDataId());
//            //envDataEntity.setFlag(0);
//            envDataMapper.updateById(envDataEntity);
//        }
//    }
//}
